package com.main.controller;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import net.sf.json.JSONArray;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;

import com.generico.dao.ctg.CtgMunicipioDao;
import com.generico.dao.ctg.CtgSucursalDao;
import com.generico.dto.ctg.CtgSucursal;
import com.generico.form.dto.RegistroCliente;
import com.main.cliente.dto.SgiPersona;
import com.main.dao.SgiPersonaDao;
import com.main.java.CtgDepartamento;
import com.main.java.CtgMunicipio;
import com.web.util.GenericoUtil;

@Controller
public class LinkNavigation extends GenericoUtil{

	@Autowired
	private SgiPersonaDao sgiPersonaDao;
	
	@Autowired
	private CtgSucursalDao ctgSucursalDao;
	
	@Autowired
	private CtgMunicipioDao ctgMunicipioDao;
	
	@RequestMapping(value="/", method=RequestMethod.GET)
	public ModelAndView homePage() {
//		return new ModelAndView("index");
		return new ModelAndView("secureLoggin/login-form");
	}
	
	@RequestMapping(value="/sobreNosotros", method=RequestMethod.GET)
	public ModelAndView aboutUs() {
		boolean algo = hasRole("ROLE_ADMIN");
		return new ModelAndView("sobreNosotros");
	}

	@RequestMapping(value="/index", method=RequestMethod.GET)
	public ModelAndView indexPage() {
		return new ModelAndView("home");
	}

	@RequestMapping(value="/sec/moderation", method=RequestMethod.GET)
	public ModelAndView moderatorPage() {
		return new ModelAndView("moderation");
	}

	@RequestMapping(value="/admin/first", method=RequestMethod.GET)
	public ModelAndView firstAdminPage() {
		return new ModelAndView("admin/admin-first");
	}

	@RequestMapping(value="/admin/second", method=RequestMethod.GET)
	public ModelAndView secondAdminPage() {
		return new ModelAndView("admin/admin-second");
	}
	
	@RequestMapping(value="/productosHome", method=RequestMethod.GET)
	public ModelAndView productosHomePage() {
		return new ModelAndView("productosHome");
	}

//	@RequestMapping(value="/registroHome", method=RequestMethod.GET)
//	public ModelAndView registroHomePage() {
//		return new ModelAndView("registroHome");
//	}
	
	@RequestMapping("/registroHome")
	public String registroHomePage(Map<String, Object> map, Model model, ModelMap models){
	
			List<Object[]> departamento = sgiPersonaDao.busquedaDepto();
			List<CtgDepartamento> departamentoListas = new ArrayList<CtgDepartamento>();
			for (int i = 0; i < departamento.size(); i++) {
				departamentoListas.add(new CtgDepartamento(Long.parseLong(departamento.get(i)[0].toString()), departamento.get(i)[1].toString()));
				
			}
			models.put("busquedaDepto", departamentoListas);
			/**	
			 * Mostrando sucursales
			 */
			List<Object[]> sucursal = ctgSucursalDao.getAllActivesAsArray();
			List<CtgSucursal> sucursalLista = new ArrayList<CtgSucursal>();
			for (int i = 0; i < sucursal.size(); i++) {
				sucursalLista.add(new CtgSucursal(Long.parseLong(sucursal.get(i)[0].toString()), sucursal.get(i)[1].toString()));
			}
			models.put("sucursal", sucursalLista);
			/**Enviado los Municipios**/
			List<Object[]> municipio = ctgMunicipioDao.busquedaMuni();
			List<CtgMunicipio> municipiosListas = new ArrayList();
			 for (int i = 0; i < municipio.size(); i++) {
				 municipiosListas.add(new CtgMunicipio(Long.parseLong(municipio.get(i)[0].toString()), municipio.get(i)[1].toString()));
			}
			models.put("busquedaMuni", municipiosListas);
			/**Fin de Municipios**/
			
		map.put("sgiPersona", new RegistroCliente());
		return "registroHome";
	}


}
